var express = require('express');
var router = express.Router();

// 导入解析 formdata 格式表单数据的包(文件的二进制流)
const multer = require('multer')
// 导入处理路径的核心模块
const path = require('path')
//导入fs模块读取文件信息
const fs=require('fs')


//创建目录
var dir = path.join(__dirname, '../public/uploads/');
if(!fs.existsSync(dir)){
   fs.mkdirSync(dir)
}

// 创建 multer 的实例对象，通过 dest 属性指定文件上传后存放路径
const upload = multer({
    dest: dir
})

//单文件上传
 //upload.single(表单文件域的字段)
router.post('/upload', upload.single('file'),(req, res) => {
    //console.log(req.file);
     //优化：可以把图片上传到oss云存储平台，减少本地的文件存储空间，减少带宽
     //保存本地服务器
     //读取临时上传的文件信息
     let img_str=fs.readFileSync(req.file.path);

     //转化成base64的字符串

     //修改文件的名字
     let newName = rename(req.file.originalname);
     //写入到真正的图片文件中
     fs.writeFileSync(path.join(req.file.destination,newName), img_str);
     //删除临时文件
     fs.unlinkSync(req.file.path);
     res.cc(200,'上传成功',`/uploads/${newName}`);
})

/**
 * 重新给上传的文件起名字，确保不重复
 * @param {*} oldName 
 * return  新的文件名
 */
function rename(oldName){
   //获取文件后缀
   let ext=oldName.split('.')[1]; 
   return new Date().getTime()+'.'+ext;
}


module.exports=router